package net.xo68.destiny.starter.worker.logger;

/**
 * 任务实例日志接口
 * @author wuxie
 * @version 2020-10-28
 */
public interface JobLogger {
    /**
     * 日志索引
     * @return
     */
    long loggerIndex();

    /**
     * 最后写入时间
     * @return
     */
    long getLastTimeStamp();
    void setLastTimeStamp(long lastTimeStamp);

    void log(String format, Object arg);

    void log(boolean decorate, String format, Object arg);

    void log(String format, Object arg0, Object arg1);

    void log(boolean decorate, String format, Object arg0, Object arg1);

    void log(String format, Object... args);

    /**
     * 记录日志
     * @param decorate 日志内容是不需要装饰
     * @param format 日志格式，与slf4j一致     *
     * @param args
     */
    void log(boolean decorate,String format, Object... args);

    /**
     * 记录日志
     * @param decorate 日志内容是不需要装饰
     * @param msg
     * @param t
     */
    void log(boolean decorate,String msg,Throwable t);

    void log(String msg, Throwable t);

}
